﻿using System;
using System.Collections.Generic;

namespace FlashPay.Entity.Response.Report
{
    /// <summary>
    /// 报表输出对象
    /// </summary>
    public class ReportResponse
    {
        /// <summary>
        /// 标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// x轴
        /// </summary>
        public XAxis XAxis { get; set; }

        /// <summary>
        /// y轴
        /// </summary>
        public YAxis YAxis { get; set; }

        /// <summary>
        /// 系数
        /// </summary>
        public List<Series> Series { get; set; }
    }

    /// <summary>
    /// 系数
    /// </summary>
    public class Series
    {
        /// <summary>
        /// 月份
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 颜色
        /// </summary>
        public string Color { get; set; }

        /// <summary>
        /// 数据
        /// </summary>
        public List<decimal> Data { get; set; }
    }

    /// <summary>
    /// x轴
    /// </summary>
    public class XAxis
    {
        /// <summary>
        /// 编号
        /// </summary>
        public List<int> Ids { get; set; }

        /// <summary>
        /// x轴[2018-09-01、2018-09-30]OR[一月、十二月]
        /// </summary>
        public List<string> Categories { get; set; }
    }

    /// <summary>
    /// y轴
    /// </summary>
    public class YAxis
    {
        /// <summary>
        /// 最小值
        /// </summary>
        public int Min { get; set; }

        /// <summary>
        /// 最大值
        /// </summary>
        public long Max { get; set; }

        /// <summary>
        /// 行宽
        /// </summary>
        public int LineWidth { get; set; }

        /// <summary>
        /// 线条颜色
        /// </summary>
        public string LineColor { get; set; }

        /// <summary>
        /// 间隔
        /// </summary>
        public long Interval { get; set; }

        public int TickInterval { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }

        public string NextUnit { get; set; }
    }
}
